package com.itheima.service;



import com.github.pagehelper.Page;
import com.itheima.pojo.Blog;
import com.itheima.vo.BlogVO;

import java.util.List;
import java.util.Map;

public interface BlogService {


        /*
        * 新增博客
        *
        */
     void add(BlogVO blogVO);

        /*
        * 删除博客
        *
        */
     void  delete(BlogVO blogVO);
        /*
        * 删除选中博客
        *
        */
     void deleteBatch(BlogVO blogVO);
        /*
        * 编辑博客
        *
        */
     void edit(BlogVO blogVO);
        /*
        * 获取博客列表
        *
        */
        Page<Blog> getList(BlogVO blogVO);

    //通过uid获取博客
    Blog getBlogByUid(String uid);

    //通过uid获取博客点赞数
    Integer getBlogPraiseCountByUid(String uid);

    //根据bloguid获取同类型的博客
    List<Blog> getSameBlogByBlogUid(String blogUid);

    //根据标签uid获取相关的博客
    Page<Blog> getSameBlogByTagUid(String tagUid,Long currentPage,Long pageSize);

    //通过uid给博客点赞
    String praiseBlogByUid(String uid);

    //获取一年内的文章贡献数
    Map<String, Object> getBlogContributeCount();

    //通过推荐登级获取博客列表
    List<Blog> getBlogByLevel(Integer level,Integer currentPage,Integer useSort);

    //按时间戳获取博客
    List<Blog> getBlogByTime(Integer currentPage, Integer pageSize, String startDate, String endDate);

    //获取首页排行博客
    List<Blog> getHotBlog();

    //获取首页最新的博客
    List<Blog> getNewBlog(Integer curretnPage,Integer pageSize);

    //获取每个分类下文章数目
    List<Map<String, Object>> getBlogCountByBlogSort();

    //获取每个标签下文章数
    List<Map<String, Object>> getBlogCountByTag();

    //获取博客次数
    Integer getBlogCount();
}
